<html>

<head>
<meta http-equiv=Content-Type content="text/html; charset=windows-1251">
<meta name=Generator content="Microsoft Word 14 (filtered)">
<style>
<!--
 /* Font Definitions */
 @font-face
	{font-family:Helvetica;
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:Courier;
	panose-1:2 7 4 9 2 2 5 2 4 4;}
@font-face
	{font-family:"Tms Rmn";
	panose-1:2 2 6 3 4 5 5 2 3 4;}
@font-face
	{font-family:Helv;
	panose-1:2 11 6 4 2 2 2 3 2 4;}
@font-face
	{font-family:"New York";
	panose-1:2 4 5 3 6 5 6 2 3 4;}
@font-face
	{font-family:System;
	panose-1:0 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:Wingdings;
	panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
	{font-family:"MS Mincho";
	panose-1:2 2 6 9 4 2 5 8 3 4;}
@font-face
	{font-family:Batang;
	panose-1:2 3 6 0 0 1 1 1 1 1;}
@font-face
	{font-family:SimSun;
	panose-1:2 1 6 0 3 1 1 1 1 1;}
@font-face
	{font-family:PMingLiU;
	panose-1:2 2 5 0 0 0 0 0 0 0;}
@font-face
	{font-family:"MS Gothic";
	panose-1:2 11 6 9 7 2 5 8 2 4;}
@font-face
	{font-family:Dotum;
	panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
	{font-family:SimHei;
	panose-1:2 1 6 9 6 1 1 1 1 1;}
@font-face
	{font-family:MingLiU;
	panose-1:2 2 5 9 0 0 0 0 0 0;}
@font-face
	{font-family:Mincho;
	panose-1:2 2 6 9 4 3 5 8 3 5;}
@font-face
	{font-family:Gulim;
	panose-1:2 11 6 0 0 1 1 1 1 1;}
@font-face
	{font-family:Century;
	panose-1:2 4 6 4 5 5 5 2 3 4;}
@font-face
	{font-family:"Angsana New";
	panose-1:2 2 6 3 5 4 5 2 3 4;}
@font-face
	{font-family:"Cordia New";
	panose-1:2 11 3 4 2 2 2 2 2 4;}
@font-face
	{font-family:Mangal;
	panose-1:2 4 5 3 5 2 3 3 2 2;}
@font-face
	{font-family:Latha;
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:Sylfaen;
	panose-1:1 10 5 2 5 3 6 3 3 3;}
@font-face
	{font-family:Vrinda;
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Raavi;
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Shruti;
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Sendnya;
	panose-1:0 0 4 0 0 0 0 0 0 0;}
@font-face
	{font-family:Gautami;
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:Tunga;
	panose-1:2 11 5 2 4 2 4 2 2 3;}
@font-face
	{font-family:"Estrangelo Edessa";
	panose-1:3 8 6 0 0 0 0 0 0 0;}
@font-face
	{font-family:"Cambria Math";
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:"Arial Unicode MS";
	panose-1:2 11 6 4 2 2 2 2 2 4;}
@font-face
	{font-family:Cambria;
	panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
	{font-family:Calibri;
	panose-1:2 15 5 2 2 2 4 3 2 4;}
@font-face
	{font-family:Tahoma;
	panose-1:2 11 6 4 3 5 4 4 2 4;}
@font-face
	{font-family:Consolas;
	panose-1:2 11 6 9 2 2 4 3 2 4;}
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{margin-top:0in;
	margin-right:0in;
	margin-bottom:10.0pt;
	margin-left:0in;
	line-height:115%;
	font-size:11.0pt;
	font-family:"Calibri","sans-serif";}
span.msoIns
	{mso-style-name:"";
	text-decoration:underline;
	color:teal;}
span.msoDel
	{mso-style-name:"";
	text-decoration:line-through;
	color:red;}
.MsoChpDefault
	{font-family:"Calibri","sans-serif";}
.MsoPapDefault
	{margin-bottom:10.0pt;
	line-height:115%;}
@page WordSection1
	{size:8.5in 11.0in;
	margin:42.5pt 42.5pt 42.5pt 70.85pt;}
div.WordSection1
	{page:WordSection1;}
-->
</style>
<script type="text/javascript">

  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-1777267-5']);
  _gaq.push(['_trackPageview']);

  (function() {
    var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
  })();

</script>
</head>

<body lang=EN-US>

<div class=WordSection1>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>///</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>/// \file printer_visitors.cpp</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>///</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>/// Implementation of a C++ pretty-printer for
Pivot based on visitor design pattern</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>///</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>/// \author Yuriy Solodkyy</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>/// Copyright (C) 2011, Texas A&amp;M
University.&nbsp; All rights reserved.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>///</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:blue;background:white'>#include</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;printer_visitors.hpp&quot;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:blue;background:white'>#include</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;precedence.hpp&quot;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:blue;background:white'>#include</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;visitor_base.hpp&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// various IPR visitor base classes</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>/// Visitors version of C++ printer</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:blue;background:white'>namespace</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>cxxv</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:navy;background:white'>std</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>::</span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>name</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{ </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>NamePrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>assertive_visitor_base</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor that prints a name.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Identifier</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>to_str</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>string</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Id_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Operator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;operator&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>to_str</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>opname</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()));
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Conversion</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;operator&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>target</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()));
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Scope_ref</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>scope</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;::&quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Template_id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Template_id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_template_dependent</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>scope</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;template
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Template_id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>args</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>args</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>length</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&gt; </span><span style='font-size:9.5pt;font-family:Consolas;color:teal;
background:white'>0</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &amp;&amp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>args</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>[</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>args</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>length</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()-</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>1</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>] == </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'&gt;'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>args</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>' '</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>template_name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'&lt;'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> + </span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>args</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'&gt;'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Ctor_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>object_type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Dtor_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'~'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>object_type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Rname</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>level</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()&nbsp;&nbsp;&nbsp;
&lt; template_parameters_stack.</span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>size</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&amp;&amp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><i><span style='font-size:
9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>position</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt; template_parameters_stack[</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>level</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()]-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>size</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(template_parameters_stack[</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>level</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()]-&gt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>operator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>[](</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>position</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()).</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;BUGGY_IPR_RNAME_&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>to_str</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>level</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'_'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>to_str</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>position</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type_id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type_expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>NamePrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>name</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:navy;background:white'>std</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>::</span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>n</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>, </span><span style='font-size:9.5pt;font-family:
Consolas;color:blue;background:white'>const</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>declarator</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>, </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>size_t</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>precedence</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>TypePrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>assertive_visitor_base</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor that prints a type expression.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Array</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>element_type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>declarator</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'['</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>bound</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())+ </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>']'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>precedence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Array</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>value</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;void&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bool</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;bool&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Char</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;char&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>sChar</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;signed
char&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;font-family:
Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>uChar</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;unsigned
char&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;font-family:
Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Wchar_t</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;wchar_t&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Short</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;short&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>uShort</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;unsigned
short&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;font-family:
Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Int</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;int&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>uInt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;unsigned
int&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;font-family:
Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Long</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;long&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>uLong</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;unsigned
long&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;font-family:
Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Long_long</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;long
long&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>uLong_long</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;unsigned
long long&quot;</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> + </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Float</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;float&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Double</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;double&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Long_double</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;long
double&quot;</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; + </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Ellipsis</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;...&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decltype</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;decltype(&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> + </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>target</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>declarator</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>source</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>, </span><span style='font-size:9.5pt;font-family:
Consolas;color:navy;background:white'>ipr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>precedence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>value</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (!</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>can_throw_everything</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)) </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>// we
skip throw specification when any exception can be thrown</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;
throw(&quot;</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>throws</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Pointer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>points_to</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'*'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>), </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>precedence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Pointer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>value</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Reference</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>refers_to</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'&amp;'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>), </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>precedence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Reference</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>value</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Ptr_to_member</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member_type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>containing_type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;::*&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>), </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>precedence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Ptr_to_member</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>value</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Qualified</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>qualifiers</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>qualifiers</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&amp; </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Type</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>qualifiers</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;const
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>qualifiers</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&amp; </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Type</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Volatile</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>qualifiers</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;volatile
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>qualifiers</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&amp; </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Type</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Restrict</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>#ifdef</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#6F008A;background:white'>_MSC_VER</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>qualifiers</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;__restrict
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>#else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; qualifiers += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;__restrict__
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>#endif</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>main_variant</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>qualifiers</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>main_variant</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()),
::</span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>precedence</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>main_variant</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()));</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Product</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sum</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Template</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;template
&lt;&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'> + </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_type</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>source</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;&gt; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>target</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>As_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); } </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
This may represent user-defined class</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Udt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>t</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>postfix</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>t</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); } </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
This is analog of Decl handling in expression context - we only refer the name</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>typedef</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>assertive_visitor_base</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>base_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>TypePrintVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>declarator</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'> = </span><span style='font-size:9.5pt;
font-family:Consolas;color:#A31515;background:white'>&quot;&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>size_t</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>precedence</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>0</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>base_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>declarator</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>), </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>m_precedence</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>precedence</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>declarator</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>result_type</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>) </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> { </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> ::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>precedence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>result_type</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt; </span><b><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>m_precedence</span></b><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> ? </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>')'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>result_type</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>) </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> { </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> ::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>postfix</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>declarator</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>result_type</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>prefix</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>result_type</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>) </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> { </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> ::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>prefix</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>declarator</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>result_type</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>size_t</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>m_precedence</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Declarator's precedence</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>TypePrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>n</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>declarator</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>precedence</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_template_dependent_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>n</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;typename
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'> + </span><span style='font-size:9.5pt;font-family:Consolas;
color:gray;background:white'>result</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:navy;background:white'>std</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>::</span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_classic</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Classic</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>n</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{ </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>ClassicExprPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>assertive_visitor_base</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor that prints an expression in the classic C++ meaning of it.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Literal</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>to_str</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>string</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Unary Operations</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Address</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'&amp;'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Array_delete</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;delete[]
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'> + </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_expr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Complement</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'~'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Delete</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;delete
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp; + </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_expr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Deref</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'*'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_sizeof</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;sizeof(&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_typeid</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;typeid(&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Not</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'!'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Paren_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Post_decrement</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_expr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;--&quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Post_increment</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_expr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;++&quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Pre_decrement</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;--&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Pre_increment</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;++&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Throw</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;throw
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>&nbsp;&nbsp;&nbsp; + </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_expr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type_sizeof</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;sizeof(&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type_typeid</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;typeid(&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Unary_minus</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'-'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Unary_plus</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'+'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+ </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_expr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Binary Operations</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Plus</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; + &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Minus</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; - &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Mul</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; * &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Div</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; / &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Modulo</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; % &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitand</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &amp; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; | &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitxor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; ^ &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Lshift</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &lt;&lt; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Rshift</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &gt;&gt; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; = &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Plus_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; += &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Minus_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; -= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Mul_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; *= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Div_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; /= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Modulo_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; %= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitand_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &amp;= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitor_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; |= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitxor_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; ^= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Lshift_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &lt;&lt;= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Rshift_assign</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &gt;&gt;= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>And</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &amp;&amp; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Or</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; || &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Equal</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; == &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Not_equal</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; != &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Greater</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &gt; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Greater_equal</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &gt;= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Less</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &lt; &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Less_equal</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; &lt;= &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Comma</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; , &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>second</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Datum</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>first</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'('</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp; + </span><span style='font-size:9.5pt;
font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Binary Operations: Casts</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Cast</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;font-family:Consolas;
color:#A31515;background:white'>'('</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp; + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Const_cast</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;const_cast&lt;&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;&gt;(&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Dynamic_cast</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
=&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;dynamic_cast&lt;&quot;</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;&gt;(&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Reinterpret_cast</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;reinterpret_cast&lt;&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;&gt;(&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Static_cast</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
=&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;static_cast&lt;&quot;</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;&gt;(&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Binary Operations: Member
selection</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Array_ref</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>base</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'['</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp; + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>']'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; } </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Arrow</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>has_impl_decl</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>base</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'.'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>impl_decl</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;()&quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (!</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_phantom</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;-&gt;&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>base</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;-&gt;&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()); </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Dot</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>base</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'.'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp; + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Arrow_star</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>base</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;-&gt;*&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Dot_star</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>base</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;.*&quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>&nbsp; + </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Ternary operations</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>New</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;new
&quot;</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'> + </span><span style='font-size:9.5pt;font-family:Consolas;
color:maroon;background:white'>eval_type</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>allocated_type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
} </span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// FIX: Take placement into account</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Conditional</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) { </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; ? &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>then_expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; : &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>else_expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());
}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Other operations</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Call</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>func_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>function</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Fundecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>target</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>call_target</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)) </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Call target is known</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Parameter_list</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>parameters</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> = </span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>target</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>parameters</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_member_function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>target</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Call to a member function</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(e.args().size()
&gt; </span><span style='font-size:9.5pt;font-family:Consolas;color:teal;
background:white'>0</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>); </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// There must be argument
that represents this pointer</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Because of function call unification, calls to member functions</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
are still represented as regular calls with this pointer passed</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
explicitly as the first argument. The original call might have</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
been on reference to object, in which case an ipr::Address node</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>// is
artificially inserted. Here we are trying to undo that </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
unnecessary address to print the dot when possible.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Address</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>addr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Address</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()[</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>0</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>]))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
The address is artifical and the actual call is through dot</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>addr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'.'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
The actual call is through this pointer</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()[</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>0</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>]) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;-&gt;&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Note that using target-&gt;name() instead of func_name might omit scope etc.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>func_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>1</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>')'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>else</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
not a member function</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Call to a regular function</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp; = </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>func_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Call target is not known</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>ft</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>function</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_member_function_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>ft</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Call to a member function</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(e.args().size()
&gt; </span><span style='font-size:9.5pt;font-family:Consolas;color:teal;
background:white'>0</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>); </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// There must be argument
that represents this pointer</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Because of function call unification, calls to member functions</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
are still represented as regular calls with this pointer passed</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
explicitly as the first argument. The original call might have</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
been on reference to object, in which case an ipr::Address node</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>// is
artificially inserted. Here we are trying to undo that </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
unnecessary address to print the dot when possible.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Address</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>addr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Address</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()[</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>0</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>]))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
The address is artifical and the actual call is through dot</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>addr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'.'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
The actual call is through this pointer</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()[</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>0</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>]) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;-&gt;&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Note that using target-&gt;name() instead of func_name might omit scope etc.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> += </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>func_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>1</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>')'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>func_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>args</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>ClassicExprPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>n</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>// Common implementation base class for visitors
that require indentation support</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:blue;background:white'>struct</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>public</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>assertive_visitor_base</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&gt;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>typedef</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>assertive_visitor_base</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&gt;
</span><span style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;
background:white'>base_type</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>IndentationBasedVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>cxx</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) : </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>base_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>cxx</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>beforeT</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>s</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span><span style='font-size:9.5pt;font-family:
Consolas;color:blue;background:white'>const</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> { </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>s</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>beforeF</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>s</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) </span><span style='font-size:9.5pt;font-family:
Consolas;color:blue;background:white'>const</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> { </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>s</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><b><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>after</span></b><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>s</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>, </span><span style='font-size:9.5pt;font-family:
Consolas;color:blue;background:white'>bool</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>new_line</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>false</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> { </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>s</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>new_line</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>};</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:#2B91AF;background:white'>cxx_printer</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&amp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operator&lt;&lt;</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>stmt</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>StatementPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor that prints executable code.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>StatementPrintVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>cxx</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) : </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>cxx</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Labeled_stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; (</span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>is_case_label</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>label</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) ?
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;case &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>label</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;: &quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>stmt</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Block</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>handlers</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>size</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)&nbsp;
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;try&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'{'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)&nbsp;
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'{'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>increase</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>body</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> </span><span style='font-size:9.5pt;font-family:
Consolas;color:green;background:white'>// Print statements in the body</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'}'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>handlers</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// Print catch handlers</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Ctor_body</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>inits</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>size</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; : &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>inits</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>().</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()); </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>block</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>If_then</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;if (&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>increase</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>then_stmt</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>If_then_else</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;if (&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>increase</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>then_stmt</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;else&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>increase</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>else_stmt</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Switch</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;switch (&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>body</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>While</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;while (&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp; &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>increase</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>body</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Do</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;do &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>increase</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>body</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;while (&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;);&quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>For</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;for (&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&nbsp;&nbsp;&nbsp; &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>condition</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>increment</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>increase</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>body</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Break</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;break;&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Continue</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;continue;&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Goto</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Identifier</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Identifier</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>target</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(p); </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
When this asserts, ipr::Goto stopped pointing to just Identifier</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;goto &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; (</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> ? </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>&quot;???&quot;</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;return &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>value</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Handler</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;catch(&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>exception</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>body</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Empty_stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Declarations</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>StatementPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>stmt</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, *</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>this</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:#2B91AF;background:white'>cxx_printer</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&amp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operator&lt;&lt;</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>decl</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{ </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>DeclarationPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor that prints definitions in the program.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>DeclarationPrintVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>cxx</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) : </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>cxx</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Typedecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_type</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()));</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(matched.has_initializer());
</span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// Namespaces cannot be forward declared</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:green;background:white'>// initializer() would
be a Namespace node, to which we forward traversal</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>ns</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());&nbsp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// dynamic_cast alternative</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(ns);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; *</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>ns</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>has_initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>semicolon</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Print comment after the type declaration/namespace</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Fundecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// NOTE: For some reason
currently virtual member functions are not marked with</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; virtual specifier
on the Fundecl but instead with the virtual specifier</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>//&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; on the first
parameter to account for later support of multi-methods.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_virtual_member_function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&amp;&amp; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>is_in_class_declaration</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;virtual &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Parameter_list</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>parameters</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> = </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>parameters</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Evaluate declarator that
will be used to output the result type that can</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// be complicated as
function can return arrays or function pointers</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>get_declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>'('</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_params</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>parameters</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) + </span><span
style='font-size:9.5pt;font-family:Consolas;color:#A31515;background:white'>')'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Prepend class name to the
name when declaration/definition is made outside</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// of class and refers to a
member function</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>ft</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());&nbsp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// dynamic_cast alternative</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(ft);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Print the name and return
type when applicable</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (!</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_constructor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&amp;&amp; !</span><span style='font-size:9.5pt;font-family:Consolas;
color:navy;background:white'>ipr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>::</span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>is_destructor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&amp;&amp; !</span><span style='font-size:9.5pt;font-family:Consolas;
color:navy;background:white'>ipr</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>::</span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>is_conversion</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_type</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>ft</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>target</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>declarator</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Check if this is a const
member function</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_const_member_function</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; const&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Print throw specification
if the function has it</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (!</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>can_throw_everything</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>ft</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)) </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>// we
skip throw specification when any exception can be thrown</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; throw(&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> + </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>ft</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>throws</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()) +
</span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Check if this is a pure
virtual function (abstract method)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>specifiers</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&amp; </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Decl</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Pure</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; = 0&quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Print body if present</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>has_initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>body</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(body);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; *</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>body</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>semicolon</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Print comment after the function definition</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Alias</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#6F008A;background:white'>assert</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(matched.has_initializer());</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>init</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'> = </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:green;background:white'>// This is the case
of: typedef T U;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>init</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_type</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(*</span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span><span style='font-size:9.5pt;font-family:
Consolas;color:green;background:white'>// Since EDG front-end now sets up the
Typedef specifier on ipr::Decl</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:green;background:white'>// This is the case
of: namespace N = A::B::C::D;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Id_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Id_expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>init</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Typedecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>td</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Typedecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>resolution</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>td</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;namespace &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'='</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:gray;background:white'>id</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:green;background:white'>// This is the case
of: using namespace A::B::C::D;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Typedecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>d</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Typedecl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>init</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>is_namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>d</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;using namespace &quot;</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;using &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>get_declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Bitfield</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_type</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>':'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>precision</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>has_initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; = &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>semicolon</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Enumerator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>has_initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; = &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Named_map</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>extern</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>bool</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>evaluate_map</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Mapping</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;,
</span><span style='font-size:9.5pt;font-family:Consolas;color:blue;background:
white'>const</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> </span><span style='font-size:9.5pt;font-family:
Consolas;color:navy;background:white'>ipr</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Named_map</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;,
</span><span style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;
background:white'>cxx_printer</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>&amp;);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Specifier</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>prefix_mask</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>AccessProtection</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Decl</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>StorageClass</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Decl</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Friend</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Decl</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Typedef</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;|
</span><span style='font-size:9.5pt;font-family:Consolas;color:navy;background:
white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;color:black;
background:white'>::</span><span style='font-size:9.5pt;font-family:Consolas;
color:#2B91AF;background:white'>Decl</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Constexpr</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
| </span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Decl</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:teal;background:white'>Export</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Parameter_list</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>parameters</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> = </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>params</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Print comment before the
function definition</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeT</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>prefix_mask</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>evaluate_map</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>mapping</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>true</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Print comment after the function definition</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>get_declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>beforeF</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>prefix_specifiers</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>)
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>eval_type</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>(</span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>type</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(), </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>declarator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>has_initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; = &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'> &lt;&lt; </span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>semicolon</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:maroon;background:white'>after</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>DeclarationPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>decl</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, *</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>this</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:#2B91AF;background:white'>cxx_printer</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&amp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operator&lt;&lt;</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Udt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>udt</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{ </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>UdtPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Visitor that prints user data type definitions in the program.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>UdtPrintVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>cxx</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) : </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>cxx</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Global_scope</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>members</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>indentation</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'> &lt;&lt; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#A31515;background:white'>'{'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>increase</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>members</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'}'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Class</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Print base classes</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sequence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Base_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>bases</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> = </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>bases</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>bases</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>size</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot; : &quot;</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>for</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sequence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Base_type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>iterator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>bases</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>begin</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> != </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>bases</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>end</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();
++</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>p</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> != </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>bases</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>begin</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>&quot;, &quot;</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>p</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>-&gt;</span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>indentation</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'> &lt;&lt; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#A31515;background:white'>'{'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>increase</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>members</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'}'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>semicolon</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Union</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>indentation</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'> &lt;&lt; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#A31515;background:white'>'{'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>increase</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>members</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'}'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>semicolon</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Enum</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>indentation</span><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'> &lt;&lt; </span><span style='font-size:
9.5pt;font-family:Consolas;color:#A31515;background:white'>'{'</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>increase</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sequence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Enumerator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>members</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> = </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>members</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>for</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sequence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Enumerator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>iterator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>members</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>begin</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> != </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>members</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>end</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();
++</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>p</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> != </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>members</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>begin</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>','</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; *</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>p</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:maroon;
background:white'>decrease</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>indentation</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'}'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>semicolon</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>UdtPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>udt</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, *</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>this</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:#2B91AF;background:white'>cxx_printer</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&amp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operator&lt;&lt;</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>e</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>ExprPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>public</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor that dispatches to the corresponding kind of generalized expression</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>ExprPrintVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>cxx</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) : </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>cxx</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Mapping</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>node_has_member</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,
&amp;</span><span style='font-size:9.5pt;font-family:Consolas;color:navy;
background:white'>ipr</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>::</span><span style='font-size:9.5pt;font-family:
Consolas;color:#2B91AF;background:white'>Mapping</span><span style='font-size:
9.5pt;font-family:Consolas;color:black;background:white'>::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>';'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Overload</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Scope</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Scope can be in place of
expression when expression is also a declaration</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// e.g. if (int i = foo())
{} or for (int i = 0, j = 0; ;);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// This is a tricky case
because first we have to generate initializers and</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// then also compute the
operand that initializer resolves to as for example:</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// if (int i = 0, j = 1) ...</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sequence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;&amp;
</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;background:
white'>decls</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> = </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>members</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>for</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Sequence</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>iterator</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>decls</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>begin</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> != </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>decls</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>end</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>();
++</span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>p</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:navy;background:white'>std</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>string</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>matched</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>eval_decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(*</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>); </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>//
Evaluate declaration without trailing ;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:
9.5pt;font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> != </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>decls</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>begin</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>','</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:gray;
background:white'>matched</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Classic</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Phantom</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_list</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'{'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operand</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'}'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Label</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Member_init</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// FIX: This is workaround
for now as it should become Expr_list statically</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>if</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> (</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_list</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>* </span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> = </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>util</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#FF6464;background:white'>view</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_list</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()))</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'('</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><span style='font-size:9.5pt;
font-family:Consolas;color:#FF6464;background:white'>eval_sqnc</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:gray;background:white'>p</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>-&gt;</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>elements</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>())
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>else</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>member</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>'('</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'> &lt;&lt; </span><i><span style='font-size:9.5pt;
font-family:Consolas;color:silver;background:white'>matched</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>initializer</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>()
&lt;&lt; </span><span style='font-size:9.5pt;font-family:Consolas;color:#A31515;
background:white'>')'</span><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>; </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// The following kinds of
nodes are not directly inherited from Expr so </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// technically they
shouldn't be handled here. However they may happen in </span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// context were traditional
expressions are expected and those cases are</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// covered here.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Declaration might happen
in expression context when IPR refers to the use</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// of the name but whoever
generated IPR forgot to mark such use properly with</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Id_expr and pointed
directly to the declaration instead.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// Expr_stmt can happen in
the initializer of the following loop:</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// int i; for (i=1; i &lt;
10; i++)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// because the scope won't
be introduced. It seems to be easier at the</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// moment to simply handle
this case here rather then all of the</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// cases of
ClassicExprPrintVisitor inside StatementPrintVisitor when</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// forwarding evaluation to
the initializer.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr_stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>expr</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// And this hack counter
measure the bugs introduced by the Udt hack below</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// as references to
Namespace should be just treated as names and not dumping</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// of their content that the
above hack will do.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Namespace</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>name</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// This shouldn't be here at
all, but it's a quick hack right now to handle</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:green;background:white'>// template class
definitions as mapping will forward here.</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Udt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>virtual</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>ExprPrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>e</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>, *</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>this</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:#2B91AF;background:white'>cxx_printer</span><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>&amp; </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>operator&lt;&lt;</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Node</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>n</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>)</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>{</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>struct</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>NodePrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> : </span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:green;background:white'>///&lt;
Visitor capable of printing any part of the program</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; {</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><b><span style='font-size:9.5pt;
font-family:Consolas;color:maroon;background:white'>NodePrintVisitor</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>cxx_printer</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>cxx</span></i><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>) : </span><span style='font-size:9.5pt;
font-family:Consolas;color:#2B91AF;background:white'>IndentationBasedVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>cxx</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>) {}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Unit</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>.</span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>get_global_scope</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(); }
</span><span style='font-size:9.5pt;font-family:Consolas;color:green;
background:white'>// This should forward to visitation of Global_scope, which
is a Namespace</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Udt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;&nbsp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Decl</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Stmt</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Type</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Name</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>void</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><b><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>visit</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>(</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>const</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>Expr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&amp;
</span><i><span style='font-size:9.5pt;font-family:Consolas;color:silver;
background:white'>matched</span></i><span style='font-size:9.5pt;font-family:
Consolas;color:black;background:white'>) { </span><b><span style='font-size:
9.5pt;font-family:Consolas;color:gray;background:white'>result</span></b><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>
&lt;&lt; </span><i><span style='font-size:9.5pt;font-family:Consolas;
color:silver;background:white'>matched</span></i><span style='font-size:9.5pt;
font-family:Consolas;color:black;background:white'>; }</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; };</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;&nbsp;&nbsp; </span><span style='font-size:9.5pt;
font-family:Consolas;color:blue;background:white'>return</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'> </span><span
style='font-size:9.5pt;font-family:Consolas;color:navy;background:white'>ipr</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>::</span><span
style='font-size:9.5pt;font-family:Consolas;color:maroon;background:white'>execute</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&lt;</span><span
style='font-size:9.5pt;font-family:Consolas;color:#2B91AF;background:white'>NodePrintVisitor</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>&gt;(</span><i><span
style='font-size:9.5pt;font-family:Consolas;color:silver;background:white'>n</span></i><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>,*</span><span
style='font-size:9.5pt;font-family:Consolas;color:blue;background:white'>this</span><span
style='font-size:9.5pt;font-family:Consolas;color:black;background:white'>);</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>}</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:green;background:white'>//------------------------------------------------------------------------------</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>&nbsp;</span></p>

<p class=MsoNormal style='margin-bottom:0in;margin-bottom:.0001pt;line-height:
normal;text-autospace:none'><span style='font-size:9.5pt;font-family:Consolas;
color:black;background:white'>} </span><span style='font-size:9.5pt;font-family:
Consolas;color:green;background:white'>// of namespace cxxv</span></p>

<p class=MsoNormal>&nbsp;</p>

</div>

</body>

</html>
